<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Array Cardio 💪💪</title>
</head>
<body>
    <p><em>请按 F12 查看 Console 面板</em> 💁</p>
    <p>若无结果请刷新试试</p>

    <script>
        // ## Array Cardio Day 2

        // 准备好数据
        const people = [
        { name: 'Wes', year: 1988 },
        { name: 'Kait', year: 1986 },
        { name: 'Irv', year: 1970 },
        { name: 'Lux', year: 2015 }
        ];

        const comments = [
        { text: 'Love this!', id: 523423 },
        { text: 'Super good', id: 823423 },
        { text: 'You are the best', id: 2039842 },
        { text: 'Ramen is my fav food ever', id: 123523 },
        { text: 'Nice Nice Nice!', id: 542328 }
        ];

        // Some and Every Checks
        // Array.prototype.some() // is at least one person 19? 是否有人超过 19 岁？
        console.log('输出超过 19 岁的人：');
        const _isAdult = people.some(function(person) {
            const currentYear = (new Date()).getFullYear();
            if(currentYear - person.year >= 19) {
                return true;
            }
        });
        console.log({_isAdult});

        // 省略 if 语句
        const __isAdult = people.some(function(person) {
            const currentYear = (new Date()).getFullYear();
            return currentYear - person.year >= 19;
        });
        console.log({__isAdult});

        // 用箭头函数改写
        const isAdult = people.some(person => ((new Date()).getFullYear()) - person.year >= 19);
        console.log({isAdult});

        // Array.prototype.every() // is everyone 19? 是否所有人都是成年人？
        const allAdults = people.every(person => ((new Date()).getFullYear()) - person.year >= 19);
        console.log({allAdults});

        // Array.prototype.find()
        // Find is like filter, but instead returns just the one you are looking for
        // find the comment with the ID of 823423
        const comment = comments.find(comment => comment.id === 823423);
        console.log(comment);

        // Array.prototype.findIndex()
        // Find the comment with this ID
        // delete the comment with the ID of 823423
        const index = comments.findIndex(comment => comment.id === 823423);
        // 删除元素方法一：
        // console.log('删除目标元素前：');
        // console.table(comments);
        // comments.splice(index, 1); // index 要删除元素的起始位置；1 要删除元素的个数
        // console.log('删除目标元素后：');
        // console.table(comments);

        // 删除元素方法二：
        const newComments = [
            ...comments.slice(0, index),
            ...comments.slice(index + 1)
        ];
        console.table(newComments);
    </script>
</body>
</html>
